package com.example.shiwu.util;

public class StringToAscii {
    private static String toHexUtil(int n){
        String rt="";
        switch(n){
            case 10:rt+="A";break;
            case 11:rt+="B";break;
            case 12:rt+="C";break;
            case 13:rt+="D";break;
            case 14:rt+="E";break;
            case 15:rt+="F";break;
            case 28:rt+="(";break;
            default:
                rt+=n;
        }
        return rt;
    }

    public static String toHex(int n){
        StringBuilder sb=new StringBuilder();
        if(n/16==0){
            return toHexUtil(n);
        }else{
            String t=toHex(n/16);
            int nn=n%16;
            sb.append(t).append(toHexUtil(nn));
        }
        return sb.toString();
    }

    public static String parseAscii(String str){
        StringBuilder sb=new StringBuilder();
        //byte[] bs=str.getBytes();
        String[] bs = str.split(",");
        Integer num = 0;
        for(int i=0;i<bs.length;i++) {
            num = Integer.parseInt(bs[i]);
            if (num < 10) {
                sb.append("\\x0" + toHex(num) + ",");
            } else {
                sb.append("\\x" + toHex(num) + ",");
            }
        }
        sb.deleteCharAt(sb.length()-1);
        return sb.toString();
    }
    public static void main(String args[]){
        String s="xyz";
        System.out.println("转换后的字符串是："+StringToAscii.parseAscii(s));
    }
}
